/**
 * 该 user 仓库，采用 组合式定义
 */

import { ref, reactive, computed } from 'vue'
import { defineStore } from 'pinia'

export const useUserStore = defineStore(
  'user',
  () => {
    // 使用 ref 或 reactive 来创建 state 数据
    const token = ref('')
    const info = ref({ name: '张三', age: 18 })

    // 使用 computed 来创建 getter 数据
    const hasLogin = computed(() => !!token.value)

    // 使用 普通函数 来创建 action
    const logout = () => {
      token.value = ''
      info.value = null
    }

    const login = () => {
      token.value = 'abcdefg'
      info.value = { name: '张三', age: 18 }
    }

    // 关键，需要 return
    return {
      token,
      info,
      hasLogin,
      logout,
      login
    }
  },
  {
    persist: true
  }
)
